package cn.edu.swu.miniwebsvr.handler;

import cn.edu.swu.miniwebsvr.core.Handler;
import cn.edu.swu.miniwebsvr.core.Parameter;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.nio.charset.StandardCharsets;

/**
 * TimeHandler 实现 Handler 接口，负责处理请求并返回**当前服务器时间**的HTML响应，
 * 用于演示简单的动态内容生成逻辑。
 */
public class TimeHandler implements Handler {

    @Override
    public void handle(Parameter request, OutputStream response) {
        // 用PrintWriter封装输出流，简化字符形式的响应写入
        PrintWriter writer = new PrintWriter(response);
        // 获取并格式化当前服务器时间（格式：年-月-日 时:分:秒）
        String currentTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        String content = "<h1>MiniWebSvr Current Time</h1>" +
                "<p>Server Time: <strong>" + currentTime + "</strong></p>";

        // TODO: [学号/姓名] 构造完整的 HTTP 响应头和响应体
        byte[] contentBytes = content.getBytes(StandardCharsets.UTF_8); // 按UTF-8计算响应体字节长度
        writer.println("HTTP/1.1 200 OK");
        writer.println("Content-Type: text/html; charset=UTF-8");
        writer.println("Content-Length: " + content.getBytes().length);
        writer.println("Connection: close");
        writer.println();

        writer.println(content);
        writer.flush();
    }
}